#define _CRT_SECURE_NO_WARNINGS 1

#include<iostream>
using namespace std;

//const int N = 110;
//
//char a[N][N]; bool st[N][N];
//
//int n, m, ret;
//
//int dx[8] = { -1,1,0,0,-1,-1,1,1 };
//int dy[8] = { 0,0,-1,1,-1,1,-1,1 };
//
//
//void dfs(int i, int j)
//{
//	st[i][j] = true;
//	for (int k = 0; k < 8; k++)
//	{
//		int x = i + dx[k],y = j + dy[k];
//		if (x >= 1 && x <= n && y >= 1 && y <= m && !st[x][y]
//			&& a[x][y] == 'W')
//		{
//			dfs(x, y);
//		}
//	}
//}
//
//int main()
//{
//	cin >> n >> m;
//	for (int i = 1; i <= n; i++)
//	{
//		for (int j = 1; j <= m; j++)
//		{
//			cin >> a[i][j];
//		}
//	}
//
//	for (int i = 1; i <= n; i++)
//	{
//		for (int j = 1; j <= m; j++)
//		{
//			if (a[i][j] == 'W' && !st[i][j])
//			{
//				ret++;
//				dfs(i, j);
//			}
//		}
//	}
//
//	cout << ret << endl;
//
//	return 0;
//}

//const int N = 40;
//int n, a[N][N], st[N][N];
//
//int dx[4] = { 1,-1,0,0 };
//int dy[4] = { 0,0,-1,1 };
//
//
//void dfs(int i, int j)
//{
//	st[i][j] = true;
//	for (int k = 0; k < 4; k++)
//	{
//		int x = i + dx[k], y = j + dy[k];
//		if (x >= 1 && x <= n && y >= 1 && y <= n && !st[x][y]
//			&& a[x][y] == 0)
//		{
//			dfs(x, y);
//		}
//	}
//}
//
//
//
//int main()
//{
//	cin >> n;
//	for (int i = 1; i <= n; i++)
//	{
//		for (int j = 1; j <= n; j++)
//		{
//			cin >> a[i][j];
//		}
//	}
//	
//	for (int i = 1; i <= n; i++)
//	{
//		if (!a[1][i] && !st[1][i]) dfs(1, i);
//	}
//
//	for (int i = 1; i <= n; i++)
//	{
//		if (!a[i][n] && !st[i][n]) dfs(i, n);
//	}
//
//	for (int j = 1; j <= n; j++)
//	{
//		if (!a[n][j] && !st[n][j]) dfs(n, j);
//	}
//
//	for (int i = 1; i <= n; i++)
//	{
//		if (!a[i][1] && !st[i][1]) dfs(i, 1);
//	}
//
//	for (int i = 1; i <= n; i++)
//	{
//		for (int j = 1; j <= n; j++)
//		{
//			if (!a[i][j] && !st[i][j])
//				a[i][j] = 2;
//		}
//	}
//
//	for (int i = 1; i <= n; i++)
//	{
//		for (int j = 1; j <= n; j++)
//		{
//			cout << a[i][j] << " ";
//		}
//		cout << endl;
//	}
//
//
//	return 0;
//}